package pl.prv.polanie.client.widgets.util;

import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Widget;

public class GUIUtil {
	
	private static final String STYLE__PREPARED_TO_RESIZE = "my-Util-preparedToResize";
	
	
	
	public static boolean eventOverWiget (Widget w, Event e) {
		
//	    startx = DOM.eventGetClientX(event)
//    	- DOM.getAbsoluteLeft(el)
//    	+ DOM.getElementPropertyInt(el, "scrollLeft")
//    	+ Window.getScrollLeft();
//    starty = DOM.eventGetClientY(event)
//    	- DOM.getAbsoluteTop(el)
//    	+ DOM.getElementPropertyInt(el, "scrollTop")
//    	+ Window.getScrollTop();
		
		if (
				DOM.eventGetClientX(e) < w.getAbsoluteLeft() ||
				DOM.eventGetClientX(e) > w.getAbsoluteLeft()+w.getOffsetWidth() ||
				DOM.eventGetClientY(e) < w.getAbsoluteTop() ||
				DOM.eventGetClientY(e) > w.getAbsoluteTop()+w.getOffsetHeight()
			) {
//			Widgets.log("zwracam false");
//			Widgets.log("DOM.eventGetClientX(event) " + DOM.eventGetClientX(e)
//					+ "- DOM.getAbsoluteLeft(el) " + DOM.getAbsoluteLeft(w.getElement())
//					+ "+ DOM.getElementPropertyInt(el, 'scrollLeft')" + DOM.getElementPropertyInt(w.getElement(), "scrollLeft")
//					+ "Window.getScrollLeft() " + Window.getScrollLeft()
//					);
//		    startx = DOM.eventGetClientX(event)
//	    	- DOM.getAbsoluteLeft(el)
//	    	+ DOM.getElementPropertyInt(el, "scrollLeft")
//	    	+ Window.getScrollLeft();

			
			
			return false;
		}
		return true;
	}
	
	public static boolean eventOverElement (Element elem, Event e) {
		if (
				DOM.eventGetClientX(e) < DOM.getAbsoluteLeft(elem) ||
				DOM.eventGetClientX(e) > DOM.getAbsoluteLeft(elem)+DOM.getElementPropertyInt(elem, "width") ||
				DOM.eventGetClientY(e) < DOM.getAbsoluteLeft(elem) ||
				DOM.eventGetClientY(e) > DOM.getAbsoluteLeft(elem)+DOM.getElementPropertyInt(elem, "height")
			)
			return false;
		return true;
	}
	
	
	public static void prepareToResize(Widget w) {
		w.addStyleName(STYLE__PREPARED_TO_RESIZE);
	}

	public static void restoreAfterResize(Widget w) {
		w.removeStyleName(STYLE__PREPARED_TO_RESIZE);
	}
	
	

}
